package server.billing;

import java.rmi.Remote;
import java.rmi.RemoteException;

/**
 * Interface represents a remote intervafe which shall be registered and
 * provided over rmi so that a management client can get it and call its single
 * method login to login to a billing server.
 */
public interface BillingServer extends Remote {

	/**
	 * Logs in a user to the billing server.
	 * 
	 * @param username
	 *            The username of the user.
	 * @param password
	 *            The password of the user.
	 * @return A BillingServerSecure remote object which then provides all
	 *         billing server functionality to the client.
	 * @throws RemoteException
	 *             Thrown if username or password are wrong.
	 */
	BillingServerSecure login(String username, String password)
			throws RemoteException;

}
